import 'package:sow_app_core/sow_app_core.dart';

import '../usecase/usecase.dart';

import '../usecase/user_usecase.dart';

abstract class RegisterController implements Controller {
  final RegisterPresenter _presenter;
  final UserRepository _userRepository;
  final TokenRepository _tokenRepository;
  final RestClient client;
  final CaptchaImageRepository _captchaImageRepository;

  RegisterController(this._presenter, this._userRepository,
      this._captchaImageRepository, this._tokenRepository, this.client);
  register() => UserRegisterUseCase(
      _presenter, _userRepository, _tokenRepository, client)(NoParams());

  void getCaptcha() => RegisterGetCaptchaUseCase(
      _presenter, _captchaImageRepository)(NoParams());
}
